home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-11-30 | 63.8 KB | 1,872 lines |
- First of all, I should point out that the version of umoria recently posted
- in comp.sources.games already had the first three patches applied.
- You can verify this by looking in the README file. This latest patch
- adds the 'patchlevel' info to the version command to make it easier to
- determine the patch level.
-
- Applying the Patches:
-
- If you have a copy of the game that you ftp'ed from ucbarpa, then
- you may have trouble applying the patches. Apparently, there were some
- differences between the version I had available via ftp and the version
- that was posted. You can either apply by hand the patches that fail,
- or you can ftp a copy of the posted version from the comp.sources.games
- archives on uunet.uu.net.
-
- If you have applied any of the semi-official patches posted to
- rec.games.moria, then a few of these patches will fail. You can ignore a
- patch if you have an equivalent one already installed.
-
- As always, don't forget to use the -N option of patch!
-
- Problems fixed:
-
- There have been two bugs reported that can cause core dumps.
- 1) fighting a Lich (any kind) or Balrog with no items in inventory
- 2) regaining more than 22 spells due to the use of a "restore level" potion
- Both of these bugs are fixed by this patch file.
-
- I have added an option to the config.h file, so that the person installing
- the game can decide whether or not panic saved games should have their
- scores entered into the scoreboard. The default is to not save scores
- from panic save files.
-
- A number of minor problems have been fixed, some of the more visible fixes:
- 1) no longer need to be next to a monster for polymorph to work
- 2) the map command failed if output width was not a divisor of 196
- 3) dispell now awards experience points when it kills a monster
- 4) using the destroy trap spell on a chest now changes the name of the chest
- 5) add plurals to magic books, and pints of ale/wine
- 6) panic save and exit if read EOF from stdin, (was a problem for some people
- who wrote automatic rerolling programs)
-
- Many other minor problems have been fixed also. Many, many bugs still
- remain.
-
- A complete, although occasionally cryptic, list of fixes and remaining bugs
- can be found in the file PROBLEMS.
-
- Jim Wilson "If winning is not important, then why keep score?"
- wilson@ji.Berkeley.EDU Worf - Star Trek: The Next Generation
- ucbvax!ucbji!wilson
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of shell archive."
- # Contents: patches04
- # Wrapped by billr@tekred on Tue Nov 29 17:07:48 1988
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f patches04 -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"patches04\"
- else
- echo shar: Extracting \"patches04\" \(60251 characters\)
- sed "s/^X//" >patches04 <<'END_OF_patches04'
- X*** oldmoria/INSTALL Sun Oct 30 01:18:12 1988
- X--- newmoria/INSTALL Sun Oct 30 01:07:29 1988
- X***************
- X*** 23,26 ****
- X--- 23,32 ----
- X define NO_SIGNED_CHARS in config.h.
- X
- X+ By default, scores from panic saved games are not stored into the
- X+ scoreboard. Some sites have a lot of trouble with HANGUP signals though.
- X+ If so, you can allow scores of panic saved games to be recorded by defining
- X+ SCORE_PANIC_SAVES. This is not recommended, as it enables some rather
- X+ devious cheating methods.
- X+
- X Moria may not compile properly on SYS III machines(?)
- X
- X*** oldmoria/Int16bit.patch Sun Oct 30 01:17:48 1988
- X--- newmoria/Int16bit.patch Sun Oct 30 01:08:00 1988
- X***************
- X*** 393,397 ****
- X {
- X register int i;
- X! register int mask = 0x1;
- X
- X ! for (i = 0; i < sizeof(int)*8; i++) {
- X--- 393,397 ----
- X {
- X register int i;
- X! ! register int mask = 0x1;
- X
- X ! for (i = 0; i < sizeof(int)*8; i++) {
- X***************
- X*** 406,410 ****
- X {
- X register int i;
- X! register int mask = 0x1;
- X
- X ! for (i = 0; i < sizeof(*test)*8; i++) {
- X--- 406,410 ----
- X {
- X register int i;
- X! ! bitset_t mask = 0x1;
- X
- X ! for (i = 0; i < sizeof(*test)*8; i++) {
- X***************
- X*** 500,504 ****
- X int new_spell;
- X int test_array[32];
- X! ! bitset_t int spell_flag;
- X int learn;
- X register spell_type *s_ptr;
- X--- 500,504 ----
- X int new_spell;
- X int test_array[32];
- X! ! bitset_t spell_flag;
- X int learn;
- X register spell_type *s_ptr;
- X*** oldmoria/Moria_news Sun Oct 30 01:16:40 1988
- X--- newmoria/Moria_news Sun Oct 30 01:07:31 1988
- X***************
- X*** 9,13 ****
- X UNIX Port : James E. Wilson / UC Berkeley
- X
- X- This is a beta release of umoria 4.87
- X-
- X Dungeon Master: This file may contain updates and news.
- X--- 9,11 ----
- X*** oldmoria/PROBLEMS Sun Oct 30 01:17:44 1988
- X--- newmoria/PROBLEMS Sun Oct 30 01:07:32 1988
- X***************
- X*** 466,469 ****
- X--- 466,527 ----
- X many files: change move_char(5) to move_light(char_row, char_col, char_row,
- X char_col), avoid problems with potential recursive calls to move_char()
- X+ sent out u487.p3 patch file
- X+ --------------------- 7/6
- X+ Int16bit.patch: change "bitset_t int" to "bitset_t"
- X+ config.h: NO_SIGNED_CHARS was missing trailing */
- X+ Moria_news: delete beta release comment
- X+ --------------------- 7/8
- X+ spells.c: fixed poly_monster, only worked when next to monster
- X+ --------------------- 8/9
- X+ save.c: printing of version changed from %lf to %.2lf
- X+ config.h: eliminated comment about dynix not needing BUGGY_CURSES
- X+ --------------------- 8/13
- X+ Int16bit.patch: mask in bit_pos() in misc1.c should be bitset_t, not int
- X+ --------------------- 8/15
- X+ misc2.c,spells.c: changed array decl for function parameters (e.g. vtype)
- X+ to pointers (e.g. char *)
- X+ --------------------- 8/24
- X+ help.c: change char for original mode shell_out command from $ to !
- X+ files.c: null terminate dun_line in after inner_loop; make filename, page_width
- X+ and page_height static to remember new default values
- X+ save.c: change references of st_atime to st_mtime, prevent automatic backup
- X+ programs from corrupting save files
- X+ -------------------- 9/21
- X+ creature.c: for drain charge attack (24), only succeed if there is comething
- X+ in the player's inventory
- X+ --------------------- 9/30
- X+ moria1.c: missing 'int' keyword added back in
- X+ --------------------- 10/10
- X+ moria1.c: sub3_move_light, change order of declarations since it caused a
- X+ problem on a 3B2
- X+ types.h: spl_type declared as array of 22 when should have been array of 32
- X+ ---------------------- 10/17
- X+ externs.h: t_level declared incorrectly
- X+ ---------------------- 10/29
- X+ *.c: fix all uses of divide operator, eliminate unnecessary floating point
- X+ operations, distinguish between round() and trunc()/div in VMS source
- X+ monsters.c: changed invisible stalker from 'E' to 'I'
- X+ spells.c: fixed td_destroy, so that when it destroys trap on chest, it also changes
- X+ name of chest to reflect this
- X+ moria2.c, spells.c: eliminated first extraneous space in " (Empty)" etc. strings
- X+ scrolls.c: fixed dangling pointer bug, was calling inven_destroy, and then using
- X+ pointer to destroyed object
- X+ files.c, death.c: add name of score file to "can't open" error messages
- X+ moria2.c: examine_book does not work if blind/no light/confused
- X+ treasure1.c, treasure2.c: add plurals to magic books, and pints of ale/wine
- X+ io.c: panic save if read EOF from stdin
- X+ main.c, save.c, signals.c: only panic save if character generation is complete,
- X+ eliminated variable generate
- X+ signals.c: flush input in control-C handler, move put_qio so "y/n?" message erased
- X+ dungeon.c: ^A (0) no longer asks if you want to quit, can be returned by an
- X+ interrupted getchar call
- X+ moria1.c: area_affect does not need to test find_flag, it is always true
- X+ treasure1.c: change potion of water to "crystal clear", so no conflict with
- X+ randomly named potions
- X+ config.h, death.c, save.c: added option SCORE_PANIC_SAVES for those who
- X+ find the non-scoring panic_save feature annoying
- X+ store2.c: add asterisk to call through function pointer, some compilers need this
- X+ constants.h, README, wizard.c: update patch level to 4, create PATCHLEVEL
- X+ define and print it out with version command
- X
- X Working on:
- X***************
- X*** 480,507 ****
- X
- X Things to be fixed:
- X!
- X! check plurals "~" in object names, esp. Pint in treasure2.c
- X! make get_panel run stops user customizable?
- X! objects in outside corners do not stop run
- X! moria1.c: area_affect does not need to check "if (find_flag)"
- X! carefully check everyplace that clears find_flag, there are a lot
- X! of unnecessary checks, perhaps even some recursive calls to move_char
- X! check setting of moria_flag in dungeon.c, esp. after restore_char ()
- X add "moria ^file" option to automatically do wizard restore,
- X do the umask calls in the program instead of forcing user to type them
- X! don't ask for quit on char '\0', should instead ignore it
- X! check for EOF when reading characters
- X! complaint that a hangup (kill -1) results in a game whose
- X! score will no longer be posted to the scoreboard
- X! resting should have small but finite chance of waking a monster
- X! perhaps check once every 10 turns against randint(6) > stealth
- X! cursor should be positioned somewhere before each inkey call
- X all npc spells should print descriptive message
- X allow rerolling after choose race/class
- X! remove "clear" from random potion names?
- X pad should take a char not a string
- X- print a number with the repeat_msg command
- X Message line overextending into second line should be erased
- X! identify staffs/wands as having zero charges, when they run out
- X ``can't carry that much weight'' before ``that many items'' is wrong?
- X I like it the way it is now, though
- X--- 538,582 ----
- X
- X Things to be fixed:
- X! suspend handler should save/restore local special characters,
- X! need routine to surround or replace suspend_handdler()
- X! these commands which take a dir should not work when confused,
- X! bash, tunnel, closeobject, jamdoor, openobject
- X add "moria ^file" option to automatically do wizard restore,
- X do the umask calls in the program instead of forcing user to type them
- X! some armor have negative to-hit values, should this be part of the name?
- X! mention this in the Moria.doc file
- X! add a pull-back map command like the PC version, display entire map on screen
- X! only showing important features, like stairs
- X! apply the new.16bit.patches to create a new Int16bit.patch file
- X! identify staffs/wands as having zero charges, when they run out
- X! list of spell books not cleared when get cast which spell? prompt
- X! wielding heavy wepaons, fix + to hit on screen?
- X! ptho subtracted in attak_blows() misc2.c, could probably subtract
- X! these point in moria1.c py_bonuses(), when calculate dis_th
- X! should one really be able to find a chest inside of another chest??
- X! received report that someone once lost a light source because of the
- X! wield/wear command, I don't see anything wrong though
- X! trap names are vague,
- X! have two names for each trap, a simple search discloses current vague name,
- X! setting it off, or a find/identify trap gives the long name
- X! use of reset_flag for free moves still a little inconsistent
- X! commands that only use objects in backpack (use,aim,quaff,eat,read_scroll,
- X! pray,cast,etc.) are free move if no action taken,
- X! other commands (bash,openobject,closeobject,jamdoor,etc.) always use move
- X! even if no action taken
- X! problems with mass polymorph wand? I once ended up surrounded by
- X! non existant mushrooms after many zaps. I think it is a race, i.e.
- X! scans monster list while adding and deleting elements.
- X! - this can also while cloning cubes
- X! - also, when compact_monsters deletes a monster, it does not update screen
- X! add scorefile editing functions, perhaps just have an ascii score file?
- X! should low level monsters be able to eat high level monsters?
- X! objects in outside corners do not stop run
- X all npc spells should print descriptive message
- X allow rerolling after choose race/class
- X! cursor should be positioned somewhere before each inkey call
- X pad should take a char not a string
- X Message line overextending into second line should be erased
- X! print a number with the repeat_msg command
- X ``can't carry that much weight'' before ``that many items'' is wrong?
- X I like it the way it is now, though
- X***************
- X*** 509,512 ****
- X--- 584,589 ----
- X perhaps use only motion optimization stuff?
- X Dot tunneling command
- X+ resting should have small but finite chance of waking a monster
- X+ perhaps check once every 10 turns against randint(6) > stealth
- X encrypt info before writing it to the save file
- X perhaps xor with stat buffer
- X***************
- X*** 517,522 ****
- X of the vault_trap bug fixed 4/6
- X subval, missile_ctr could be short ints
- X- note that some armor can decrease to-hit values in docs,
- X- should these be displayed in name?
- X missing amulets, 1-4 strength, constitution, intelligence, dexterity
- X missing rings 5-6 gain wisdom, gain charisma
- X--- 594,597 ----
- X***************
- X*** 529,533 ****
- X perhaps some ifdefed code which does no-blocking I/O for them?
- X add death due to starvation
- X- wielding heavy wepaons, fix + to hit on screen?
- X don't let dragons breathe on first attack, AMHD is nasty
- X especially after the screen changes to the next panel
- X--- 604,607 ----
- X***************
- X*** 534,538 ****
- X checking both ((!m_ptr->ml) or (!see_invis && mon invis)) is probably
- X redundant when determining whether or not player can see a monster
- X- list of spell books not cleared when get cast which spell? prompt
- X should we call m_name if spell only applies to visible creatures?
- X many spells do not print desciptive comment, aggravate_monster for instance
- X--- 608,611 ----
- X***************
- X*** 562,567 ****
- X in general, loss of an ability should have many affects, non of which are
- X implemented, for example, lose of intelligence should cause a mage
- X! to lose spells
- X! cases of permanent slowness reported?
- X add user name to scoreboard?
- X also add points and experience to scoreboard
- X--- 635,640 ----
- X in general, loss of an ability should have many affects, non of which are
- X implemented, for example, lose of intelligence should cause a mage
- X! to lose spells, gain of int should cause mage to learn spells
- X! cases of permanent slowness reported, why does this happen?
- X add user name to scoreboard?
- X also add points and experience to scoreboard
- X***************
- X*** 570,574 ****
- X change turn to a long
- X store_open should be a long
- X- use of reset_flag for free moves still a little inconsistent
- X fix save files to include obj desc, then only need one random number
- X generator which can use table program
- X--- 643,646 ----
- X***************
- X*** 575,582 ****
- X replace magic numbers with constants
- X name objects if use did not identify them
- X
- X- add a pull-back map command like the PC version, display entire map on screen
- X- only showing important features, like stairs
- X-
- X Very Hard things to add:
- X recenter character on screen?
- X--- 647,654 ----
- X replace magic numbers with constants
- X name objects if use did not identify them
- X+ light spells should work in corridors, what they light should be permanent
- X+ creeping coins should leaves coins as treasure
- X+ when creature steals and then dies, the stolen item should appear
- X
- X Very Hard things to add:
- X recenter character on screen?
- X***************
- X*** 588,593 ****
- X--- 660,667 ----
- X 'flavor' the levels, dragons on one level, undead on another, etc.
- X what's been discovered list
- X+ make get_panel run stops user customizable? via environment variable
- X use environment variables to specify rogue-like/original keys
- X use environment variable for default save file
- X+ use environment variables for files.c: page_height,page_width, filename
- X add option to restore files from default save filename
- X commands not close enough to rogue style
- X*** oldmoria/README Sun Oct 30 01:16:34 1988
- X--- newmoria/README Sun Oct 30 01:07:32 1988
- X***************
- X*** 1,4 ****
- X
- X! This copy of umoria includes the first three patch files (upto u487.p3).
- X
- X Please report problems to wilson@ji.Berkeley.EDU (ucbvax!ucbji!wilson).
- X--- 1,4 ----
- X
- X! This copy of 4.87 umoria includes the first four patch files (upto u487.p4).
- X
- X Please report problems to wilson@ji.Berkeley.EDU (ucbvax!ucbji!wilson).
- X*** oldmoria/config.h Sun Oct 30 01:16:45 1988
- X--- newmoria/config.h Sun Oct 30 01:07:32 1988
- X***************
- X*** 38,43 ****
- X /* if the screen does not look right (it will be obvious) then you have a buggy
- X version of curses, and you must define this */
- X! /* this must be defined for Ultrix systems, and for most 4.2BSD systems
- X! it is not needed for Dynix */
- X /* only need to recompile io.c */
- X /* #define BUGGY_CURSES */
- X--- 38,42 ----
- X /* if the screen does not look right (it will be obvious) then you have a buggy
- X version of curses, and you must define this */
- X! /* this must be defined for Ultrix systems, and for most 4.2BSD systems */
- X /* only need to recompile io.c */
- X /* #define BUGGY_CURSES */
- X***************
- X*** 45,49 ****
- X /* define this is your machine does not have signed characters:
- X this is needed for IBM PC-RT, 3B1, 3B2, 3B20, and perhaps others */
- X! /* #define NO_SIGNED_CHARS
- X
- X /* this will slow down the game a bit, and therefore make it use up a little
- X--- 44,48 ----
- X /* define this is your machine does not have signed characters:
- X this is needed for IBM PC-RT, 3B1, 3B2, 3B20, and perhaps others */
- X! /* #define NO_SIGNED_CHARS */
- X
- X /* this will slow down the game a bit, and therefore make it use up a little
- X***************
- X*** 52,55 ****
- X--- 51,61 ----
- X /* only need to recompile dungeon.c and create.c
- X /* #define SLOW */
- X+
- X+ /* if this is defined, scores from panic save files will be added to the
- X+ scoreboard, this is not recommended because it enables several rather
- X+ devious cheating methods, however, it is useful on systems where HANGUP
- X+ signals are common (i.e. lots of dialup users, unreliable terminal
- X+ multiplexors, etc.) */
- X+ /* #define SCORE_PANIC_SAVES */
- X
- X /* system dependent defines follow, you should not need to change anything
- X*** oldmoria/constants.h Sun Oct 30 01:18:04 1988
- X--- newmoria/constants.h Sun Oct 30 01:07:33 1988
- X***************
- X*** 10,13 ****
- X--- 10,14 ----
- X /* Current version number of Moria */
- X #define CUR_VERSION 4.87
- X+ #define PATCH_LEVEL 4
- X
- X #ifndef TRUE
- X*** oldmoria/creature.c Sun Oct 30 01:17:37 1988
- X--- newmoria/creature.c Sun Oct 30 01:07:34 1988
- X***************
- X*** 423,427 ****
- X case 24: /*Eat charges */
- X if (test_hit(15, (int)c_ptr->level, 0, p_ptr->pac+p_ptr->ptoac))
- X! flag = TRUE;
- X break;
- X case 99:
- X--- 423,428 ----
- X case 24: /*Eat charges */
- X if (test_hit(15, (int)c_ptr->level, 0, p_ptr->pac+p_ptr->ptoac))
- X! if (inven_ctr > 0) /* check to make sure an object exists */
- X! flag = TRUE;
- X break;
- X case 99:
- X***************
- X*** 1171,1175 ****
- X (void) strcat(cdesc, "breathes lightning.");
- X msg_print(cdesc);
- X! breath(1, char_row, char_col, (int)(m_ptr->hp/4.0), ddesc);
- X break;
- X case 21: /*Breath Gas */
- X--- 1172,1176 ----
- X (void) strcat(cdesc, "breathes lightning.");
- X msg_print(cdesc);
- X! breath(1, char_row, char_col, (m_ptr->hp / 4), ddesc);
- X break;
- X case 21: /*Breath Gas */
- X***************
- X*** 1176,1180 ****
- X (void) strcat(cdesc, "breathes gas.");
- X msg_print(cdesc);
- X! breath(2, char_row, char_col, (int)(m_ptr->hp/3.0), ddesc);
- X break;
- X case 22: /*Breath Acid */
- X--- 1177,1181 ----
- X (void) strcat(cdesc, "breathes gas.");
- X msg_print(cdesc);
- X! breath(2, char_row, char_col, (m_ptr->hp / 3), ddesc);
- X break;
- X case 22: /*Breath Acid */
- X***************
- X*** 1181,1185 ****
- X (void) strcat(cdesc, "breathes acid.");
- X msg_print(cdesc);
- X! breath(3, char_row, char_col, (int)(m_ptr->hp/3.0), ddesc);
- X break;
- X case 23: /*Breath Frost */
- X--- 1182,1186 ----
- X (void) strcat(cdesc, "breathes acid.");
- X msg_print(cdesc);
- X! breath(3, char_row, char_col, (m_ptr->hp / 3), ddesc);
- X break;
- X case 23: /*Breath Frost */
- X***************
- X*** 1186,1190 ****
- X (void) strcat(cdesc, "breathes frost.");
- X msg_print(cdesc);
- X! breath(4, char_row, char_col, (int)(m_ptr->hp/3.0), ddesc);
- X break;
- X case 24: /*Breath Fire */
- X--- 1187,1191 ----
- X (void) strcat(cdesc, "breathes frost.");
- X msg_print(cdesc);
- X! breath(4, char_row, char_col, (m_ptr->hp / 3), ddesc);
- X break;
- X case 24: /*Breath Fire */
- X***************
- X*** 1191,1195 ****
- X (void) strcat(cdesc, "breathes fire.");
- X msg_print(cdesc);
- X! breath(5, char_row, char_col, (int)(m_ptr->hp/3.0), ddesc);
- X break;
- X default:
- X--- 1192,1196 ----
- X (void) strcat(cdesc, "breathes fire.");
- X msg_print(cdesc);
- X! breath(5, char_row, char_col, (m_ptr->hp / 3), ddesc);
- X break;
- X default:
- X***************
- X*** 1350,1354 ****
- X else if (py.flags.rest < 1)
- X if (randint(10) > py.misc.stl)
- X! m_ptr->csleep -= (75.0/m_ptr->cdis);
- X if (m_ptr->stunned > 0)
- X m_ptr->stunned--;
- X--- 1351,1355 ----
- X else if (py.flags.rest < 1)
- X if (randint(10) > py.misc.stl)
- X! m_ptr->csleep -= (75 / m_ptr->cdis);
- X if (m_ptr->stunned > 0)
- X m_ptr->stunned--;
- X*** oldmoria/death.c Sun Oct 30 01:18:05 1988
- X--- newmoria/death.c Sun Oct 30 01:07:35 1988
- X***************
- X*** 133,140 ****
- X high_scores score;
- X char list[20][256];
- X
- X if (1 > (fd = open(MORIA_TOP, O_RDONLY, 0644)))
- X {
- X! prt("Error opening top twenty file\n", 0, 0);
- X return ;
- X }
- X--- 133,142 ----
- X high_scores score;
- X char list[20][256];
- X+ char string[100];
- X
- X if (1 > (fd = open(MORIA_TOP, O_RDONLY, 0644)))
- X {
- X! sprintf (string, "Error opening score file \"%s\"\n", MORIA_TOP);
- X! prt(string, 0, 0);
- X return ;
- X }
- X***************
- X*** 267,270 ****
- X--- 269,273 ----
- X exit_game();
- X
- X+ #ifndef SCORE_PANIC_SAVES
- X if (panic_save == 1)
- X {
- X***************
- X*** 275,278 ****
- X--- 278,282 ----
- X exit_game();
- X }
- X+ #endif
- X
- X myscore.points = (long)total_points();
- X*** oldmoria/dungeon.c Sun Oct 30 01:17:26 1988
- X--- newmoria/dungeon.c Sun Oct 30 01:07:53 1988
- X***************
- X*** 704,708 ****
- X if (randint(100) == 1)
- X {
- X! find_flag = FALSE; /* no need for move_char(5) */
- X teleport(40);
- X }
- X--- 704,708 ----
- X if (randint(100) == 1)
- X {
- X! find_flag = FALSE; /* no need for move_char(5) */
- X teleport(40);
- X }
- X***************
- X*** 753,757 ****
- X switch(*com_val)
- X {
- X! case 0: case 11: /*^K == exit */
- X flush();
- X if (get_com("Enter 'Q' to quit", &command))
- X--- 753,757 ----
- X switch(*com_val)
- X {
- X! case 11: /*^K == exit */
- X flush();
- X if (get_com("Enter 'Q' to quit", &command))
- X***************
- X*** 1084,1087 ****
- X--- 1084,1089 ----
- X restore_char(); /*^V == restore */
- X prt_stat_block();
- X+ /* force generation of new level, in case there is something wrong
- X+ with the old one */
- X moria_flag = TRUE;
- X break;
- X***************
- X*** 1147,1151 ****
- X switch(*com_val)
- X {
- X! case 0: case 'Q': /*Q == exit */
- X flush();
- X if (get_com("Do you really want to quit?", &command))
- X--- 1149,1153 ----
- X switch(*com_val)
- X {
- X! case 'Q': /*Q == exit */
- X flush();
- X if (get_com("Do you really want to quit?", &command))
- X***************
- X*** 1566,1569 ****
- X--- 1568,1573 ----
- X restore_char(); /*^V == restore */
- X prt_stat_block();
- X+ /* force generation of new level, in case there is something wrong
- X+ with the old one */
- X moria_flag = TRUE;
- X break;
- X*** oldmoria/eat.c Sun Oct 30 01:18:14 1988
- X--- newmoria/eat.c Sun Oct 30 01:07:35 1988
- X***************
- X*** 210,214 ****
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += ((i_ptr->level/m_ptr->lev) + .5);
- X prt_experience();
- X }
- X--- 210,214 ----
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += (((float) i_ptr->level / (float) m_ptr->lev) + 0.5);
- X prt_experience();
- X }
- X*** oldmoria/externs.h Sun Oct 30 01:18:15 1988
- X--- newmoria/externs.h Sun Oct 30 01:07:42 1988
- X***************
- X*** 12,16 ****
- X extern int missile_ctr; /* Counter for missiles */
- X extern int msg_flag; /* Set with first msg */
- X- extern int generate; /* Generate next level */
- X extern int death; /* True if died */
- X extern vtype died_from; /* What killed him */
- X--- 12,15 ----
- X***************
- X*** 93,97 ****
- X extern treasure_type object_list[MAX_OBJECTS];
- X extern int object_ident[MAX_OBJECTS];
- X! extern int t_level[MAX_OBJ_LEVEL];
- X extern treasure_type gold_list[MAX_GOLD];
- X extern treasure_type t_list[MAX_TALLOC];
- X--- 92,96 ----
- X extern treasure_type object_list[MAX_OBJECTS];
- X extern int object_ident[MAX_OBJECTS];
- X! extern int t_level[MAX_OBJ_LEVEL+1];
- X extern treasure_type gold_list[MAX_GOLD];
- X extern treasure_type t_list[MAX_TALLOC];
- X*** oldmoria/files.c Sun Oct 30 01:18:00 1988
- X--- newmoria/files.c Sun Oct 30 01:07:36 1988
- X***************
- X*** 33,37 ****
- X if (1 > (highscore_fd = open(MORIA_TOP, O_RDWR | O_CREAT, 0644)))
- X {
- X! (void) fputs("Can't open score file!\n", stderr);
- X exit(1);
- X }
- X--- 33,37 ----
- X if (1 > (highscore_fd = open(MORIA_TOP, O_RDWR | O_CREAT, 0644)))
- X {
- X! (void) fprintf (stderr, "Can't open score file \"%s\"\n", MORIA_TOP);
- X exit(1);
- X }
- X***************
- X*** 120,138 ****
- X register k, l;
- X register i7, i8;
- X! char dun_line[MAX_WIDTH];
- X char *dun_ptr;
- X! vtype filename1;
- X char tmp_str[80];
- X FILE *file1;
- X! int page_width = OUTPAGE_WIDTH;
- X! int page_height = OUTPAGE_HEIGHT;
- X
- X /* this allows us to strcat each character in the inner loop,
- X instead of using the expensive sprintf */
- X! prt("File name: ", 0, 0);
- X! if (get_string(filename1, 0, 11, 64))
- X {
- X! if (strlen(filename1) == 0)
- X! (void) strcpy(filename1, "MORIAMAP.DAT");
- X if ((file1 = fopen(filename1, "w")) == NULL)
- X {
- X--- 120,140 ----
- X register k, l;
- X register i7, i8;
- X! char dun_line[MAX_WIDTH+1];
- X char *dun_ptr;
- X! static vtype filename1 = "MORIAMAP.DAT";
- X! vtype filename2;
- X char tmp_str[80];
- X FILE *file1;
- X! static int page_width = OUTPAGE_WIDTH;
- X! static int page_height = OUTPAGE_HEIGHT;
- X
- X /* this allows us to strcat each character in the inner loop,
- X instead of using the expensive sprintf */
- X! (void) sprintf (tmp_str, "File name [%s]: ", filename1);
- X! prt(tmp_str, 0, 0);
- X! if (get_string(filename2, 0, strlen(tmp_str), 64))
- X {
- X! if (strlen(filename2) > 0)
- X! (void) strcpy(filename1, filename2);
- X if ((file1 = fopen(filename1, "w")) == NULL)
- X {
- X***************
- X*** 209,212 ****
- X--- 211,215 ----
- X }
- X *dun_ptr++ = '\n';
- X+ *dun_ptr++ = '\0';
- X (void) fputs(dun_line, file1);
- X }
- X*** oldmoria/generate.c Sun Oct 30 01:17:53 1988
- X--- newmoria/generate.c Sun Oct 30 01:07:37 1988
- X***************
- X*** 140,145 ****
- X
- X /* Choose starting point and direction */
- X! y = (cur_height/2.0) + 11 - randint(23);
- X! x = (cur_width/2.0) + 16 - randint(33);
- X
- X dir = randint(8); /* Number 1-4, 6-9 */
- X--- 140,145 ----
- X
- X /* Choose starting point and direction */
- X! y = (cur_height / 2) + 11 - randint(23);
- X! x = (cur_width / 2) + 16 - randint(33);
- X
- X dir = randint(8); /* Number 1-4, 6-9 */
- X*** oldmoria/help.c Sun Oct 30 01:17:33 1988
- X--- newmoria/help.c Sun Oct 30 01:07:38 1988
- X***************
- X*** 133,137 ****
- X prt("e Equipment list. | ^X Save character and quit.",
- X 14, 0);
- X! prt("f Fire/Throw an item. | $ Shell out of game.", 15, 0);
- X /* prt("h Help on key commands. |", 16, 0); */
- X prt("i Inventory list. | < Go up an up-staircase.", 17, 0);
- X--- 133,137 ----
- X prt("e Equipment list. | ^X Save character and quit.",
- X 14, 0);
- X! prt("f Fire/Throw an item. | ! Shell out of game.", 15, 0);
- X /* prt("h Help on key commands. |", 16, 0); */
- X prt("i Inventory list. | < Go up an up-staircase.", 17, 0);
- X*** oldmoria/io.c Sun Oct 30 01:17:17 1988
- X--- newmoria/io.c Sun Oct 30 01:07:38 1988
- X***************
- X*** 3,6 ****
- X--- 3,7 ----
- X #include <sys/ioctl.h>
- X #include <sys/file.h>
- X+ #include <signal.h>
- X
- X #include "constants.h"
- X***************
- X*** 231,236 ****
- X char *ch;
- X {
- X put_qio(); /* Dump IO buffer */
- X! *ch = getch();
- X msg_flag = FALSE;
- X }
- X--- 232,251 ----
- X char *ch;
- X {
- X+ int i;
- X+
- X put_qio(); /* Dump IO buffer */
- X! i = getch();
- X! if ((i == EOF) && (feof (stdin)))
- X! {
- X! prt ("Read end of file!!!!!", 22, 0);
- X! refresh ();
- X! /* fake a call to the signal handler routines to do a panic save */
- X! #ifdef USG
- X! signal_save_core (-1);
- X! #else
- X! signal_save_core (-1, -1, (struct sigcontext *)0);
- X! #endif
- X! }
- X! *ch = i;
- X msg_flag = FALSE;
- X }
- X*** oldmoria/main.c Sun Oct 30 01:18:08 1988
- X--- newmoria/main.c Sun Oct 30 01:07:39 1988
- X***************
- X*** 134,138 ****
- X if ((argc > 1) && strlen(argv[argc-1]))
- X { /* Retrieve character */
- X! generate = get_char(argv[argc-1]);
- X change_name();
- X magic_init();
- X--- 134,138 ----
- X if ((argc > 1) && strlen(argv[argc-1]))
- X { /* Retrieve character */
- X! get_char(argv[argc-1]);
- X change_name();
- X magic_init();
- X***************
- X*** 154,158 ****
- X py.misc.cmana = (double)py.misc.mana;
- X magic_init();
- X! generate = TRUE;
- X }
- X
- X--- 154,162 ----
- X py.misc.cmana = (double)py.misc.mana;
- X magic_init();
- X! generate_cave();
- X! /* prevent ^c quit from entering score into scoreboard,
- X! and prevent signal from creating panic save until this point,
- X! all info needed for save file is now valid */
- X! character_generated = 1;
- X }
- X
- X***************
- X*** 164,175 ****
- X clear_screen(0, 0);
- X prt_stat_block();
- X- /* prevent ^c quit from entering score into scoreboard until this point */
- X- character_generated = 1;
- X
- X /* Loop till dead, or exit */
- X while(!death) {
- X- if (generate) generate_cave(); /* New level */
- X dungeon(); /* Dungeon logic */
- X! generate = TRUE;
- X }
- X upon_death(); /* Character gets buried */
- X--- 168,176 ----
- X clear_screen(0, 0);
- X prt_stat_block();
- X
- X /* Loop till dead, or exit */
- X while(!death) {
- X dungeon(); /* Dungeon logic */
- X! generate_cave (); /* New level */
- X }
- X upon_death(); /* Character gets buried */
- X*** oldmoria/misc1.c Sun Oct 30 01:17:20 1988
- X--- newmoria/misc1.c Sun Oct 30 01:07:30 1988
- X***************
- X*** 740,744 ****
- X mon_ptr->csleep = 0;
- X else
- X! mon_ptr->csleep = (c_list[z].sleep/5.0) + randint(c_list[z].sleep);
- X }
- X else
- X--- 740,744 ----
- X mon_ptr->csleep = 0;
- X else
- X! mon_ptr->csleep = (c_list[z].sleep / 5) + randint(c_list[z].sleep);
- X }
- X else
- X***************
- X*** 1074,1078 ****
- X /* abs may be a macro, don't call it with randnor as a parameter */
- X tmp = randnor(0, stand_dev);
- X! x = (abs(tmp)/10.0) + base;
- X if (x < base)
- X return(base);
- X--- 1074,1078 ----
- X /* abs may be a macro, don't call it with randnor as a parameter */
- X tmp = randnor(0, stand_dev);
- X! x = (abs(tmp) / 10) + base;
- X if (x < base)
- X return(base);
- X*** oldmoria/misc2.c Sun Oct 30 01:17:07 1988
- X--- newmoria/misc2.c Sun Oct 30 01:07:40 1988
- X***************
- X*** 291,295 ****
- X
- X popt(&cur_pos);
- X! i = ((randint(dun_level+2)+2)/2.0) - 1;
- X if (randint(OBJ_GREAT) == 1)
- X i += randint(dun_level+1);
- X--- 291,295 ----
- X
- X popt(&cur_pos);
- X! i = ((randint(dun_level+2)+2) / 2) - 1;
- X if (randint(OBJ_GREAT) == 1)
- X i += randint(dun_level+1);
- X***************
- X*** 439,443 ****
- X /* Print character stat in given row, column -RAK- */
- X prt_stat(stat_name, stat, row, column)
- X! vtype stat_name;
- X byteint stat;
- X int row, column;
- X--- 439,443 ----
- X /* Print character stat in given row, column -RAK- */
- X prt_stat(stat_name, stat, row, column)
- X! char *stat_name;
- X byteint stat;
- X int row, column;
- X***************
- X*** 456,460 ****
- X /* the longest title is 13 characters, so only pad to 13 */
- X prt_field(info, row, column)
- X! vtype info;
- X int row, column;
- X {
- X--- 456,460 ----
- X /* the longest title is 13 characters, so only pad to 13 */
- X prt_field(info, row, column)
- X! char *info;
- X int row, column;
- X {
- X***************
- X*** 465,469 ****
- X /* Print number with header at given row, column -RAK- */
- X prt_num(header, num, row, column)
- X! vtype header;
- X int num, row, column;
- X {
- X--- 465,469 ----
- X /* Print number with header at given row, column -RAK- */
- X prt_num(header, num, row, column)
- X! char *header;
- X int num, row, column;
- X {
- X***************
- X*** 1367,1371 ****
- X /* Print list of spells -RAK- */
- X print_new_spells(spell, num, redraw)
- X! spl_type spell;
- X register int num;
- X int *redraw;
- X--- 1367,1371 ----
- X /* Print list of spells -RAK- */
- X print_new_spells(spell, num, redraw)
- X! spl_rec *spell;
- X register int num;
- X int *redraw;
- X***************
- X*** 1392,1399 ****
- X /* Returns spell pointer -RAK- */
- X int get_spell(spell, num, sn, sc, prompt, redraw)
- X! spl_type spell;
- X register int num;
- X register int *sn, *sc;
- X! vtype prompt;
- X int *redraw;
- X {
- X--- 1392,1399 ----
- X /* Returns spell pointer -RAK- */
- X int get_spell(spell, num, sn, sc, prompt, redraw)
- X! spl_rec *spell;
- X register int num;
- X register int *sn, *sc;
- X! char *prompt;
- X int *redraw;
- X {
- X***************
- X*** 1844,1848 ****
- X else if (p_ptr->cdex < 118) blows = 5;
- X else blows = 6;
- X! adj_weight = ((p_ptr->cstr*10)/weight);
- X if (adj_weight < 2) blows = 1;
- X else if (adj_weight < 3) blows = (blows/3.0) + 1;
- X--- 1844,1848 ----
- X else if (p_ptr->cdex < 118) blows = 5;
- X else blows = 6;
- X! adj_weight = ((p_ptr->cstr*10) / weight);
- X if (adj_weight < 2) blows = 1;
- X else if (adj_weight < 3) blows = (blows/3.0) + 1;
- X*** oldmoria/monsters.c Sun Oct 30 01:16:38 1988
- X--- newmoria/monsters.c Sun Oct 30 01:07:49 1988
- X***************
- X*** 610,614 ****
- X 20, 48, 1, 'T', "14d8" , "1 1 1d8|1 1 1d8|1 2 1d6|1 2 1d6", 32},
- X {"Invisible Stalker" ,0x00030022,0x00000000,0x0000, 200, 200,
- X! 20, 46, 3, 'E', "19d8" , "1 1 1d6" , 32},
- X {"Giant Hunter Ant" ,0x00000002,0x00000000,0x0002, 10, 150,
- X 16, 40, 1, 'a', "12d8" , "1 2 4d8" , 32},
- X--- 610,614 ----
- X 20, 48, 1, 'T', "14d8" , "1 1 1d8|1 1 1d8|1 2 1d6|1 2 1d6", 32},
- X {"Invisible Stalker" ,0x00030022,0x00000000,0x0000, 200, 200,
- X! 20, 46, 3, 'I', "19d8" , "1 1 1d6" , 32},
- X {"Giant Hunter Ant" ,0x00000002,0x00000000,0x0002, 10, 150,
- X 16, 40, 1, 'a', "12d8" , "1 2 4d8" , 32},
- X*** oldmoria/moria1.c Sun Oct 30 01:17:01 1988
- X--- newmoria/moria1.c Sun Oct 30 01:07:54 1988
- X***************
- X*** 1375,1380 ****
- X /* When blinded, move only the player symbol... */
- X sub3_move_light(y1, x1, y2, x2)
- X! register int x1, y1;
- X! int x2, y2;
- X {
- X register int i, j;
- X--- 1375,1380 ----
- X /* When blinded, move only the player symbol... */
- X sub3_move_light(y1, x1, y2, x2)
- X! register int y1, x1;
- X! int y2, x2;
- X {
- X register int i, j;
- X***************
- X*** 1393,1397 ****
- X /* With no light, movement becomes involved... */
- X sub4_move_light(y1, x1, y2, x2)
- X! register y1, x1;
- X int y2, x2;
- X {
- X--- 1393,1397 ----
- X /* With no light, movement becomes involved... */
- X sub4_move_light(y1, x1, y2, x2)
- X! register int y1, x1;
- X int y2, x2;
- X {
- X***************
- X*** 1645,1651 ****
- X p_ptr = &py.flags;
- X if (p_ptr->confused+p_ptr->blind > 0)
- X! chance = chance / 10.0;
- X else if (no_light())
- X! chance = chance / 5.0;
- X for (i = (y - 1); i <= (y + 1); i++)
- X for (j = (x - 1); j <= (x + 1); j++)
- X--- 1645,1651 ----
- X p_ptr = &py.flags;
- X if (p_ptr->confused+p_ptr->blind > 0)
- X! chance = chance / 10;
- X else if (no_light())
- X! chance = chance / 5;
- X for (i = (y - 1); i <= (y + 1); i++)
- X for (j = (x - 1); j <= (x + 1); j++)
- X***************
- X*** 1724,1728 ****
- X }
- X }
- X! if ((find_flag) && (py.flags.blind < 1))
- X {
- X switch(dir)
- X--- 1724,1728 ----
- X }
- X }
- X! if (py.flags.blind < 1)
- X {
- X switch(dir)
- X***************
- X*** 1784,1799 ****
- X /* Objects player can see*/
- X /* Including doors */
- X! if (find_flag)
- X! if (player_light)
- X! {
- X! if (c_ptr->tptr != 0)
- X! if ((t_list[c_ptr->tptr].tval != 101) &&
- X! (t_list[c_ptr->tptr].tval != 109))
- X! {
- X! find_flag = FALSE; /* no need to call move_light */
- X! return;
- X! }
- X! }
- X! else if ((c_ptr->tl) || (c_ptr->pl) || (c_ptr->fm))
- X if (c_ptr->tptr != 0)
- X if ((t_list[c_ptr->tptr].tval != 101) &&
- X--- 1784,1789 ----
- X /* Objects player can see*/
- X /* Including doors */
- X! if (player_light)
- X! {
- X if (c_ptr->tptr != 0)
- X if ((t_list[c_ptr->tptr].tval != 101) &&
- X***************
- X*** 1803,1818 ****
- X return;
- X }
- X! /* Creatures */
- X! if (find_flag)
- X! if ((c_ptr->tl) || (c_ptr->pl) || (player_light))
- X! if (c_ptr->cptr > 1)
- X {
- X! m_ptr = &m_list[c_ptr->cptr];
- X! if (m_ptr->ml)
- X! {
- X! find_flag = FALSE; /* no need to call move_light */
- X! return;
- X! }
- X }
- X }
- X }
- X--- 1793,1816 ----
- X return;
- X }
- X! }
- X! else if ((c_ptr->tl) || (c_ptr->pl) || (c_ptr->fm))
- X! if (c_ptr->tptr != 0)
- X! if ((t_list[c_ptr->tptr].tval != 101) &&
- X! (t_list[c_ptr->tptr].tval != 109))
- X {
- X! find_flag = FALSE; /* no need to call move_light */
- X! return;
- X }
- X+ /* Creatures */
- X+ if ((c_ptr->tl) || (c_ptr->pl) || (player_light))
- X+ if (c_ptr->cptr > 1)
- X+ {
- X+ m_ptr = &m_list[c_ptr->cptr];
- X+ if (m_ptr->ml)
- X+ {
- X+ find_flag = FALSE; /* no need to call move_light */
- X+ return;
- X+ }
- X+ }
- X }
- X }
- X*** oldmoria/moria2.c Sun Oct 30 01:16:49 1988
- X--- newmoria/moria2.c Sun Oct 30 01:07:42 1988
- X***************
- X*** 352,355 ****
- X--- 352,361 ----
- X if (!find_range(90, 91, &i, &k))
- X msg_print("You are not carrying any books.");
- X+ else if (py.flags.blind > 0)
- X+ msg_print("You can't see to read your spell book!");
- X+ else if (no_light())
- X+ msg_print("You have no light to read by.");
- X+ else if (py.flags.confused > 0)
- X+ msg_print("You are too confused...");
- X else if (get_item(&item_val, "Which Book?", &redraw, i, k))
- X {
- X***************
- X*** 739,743 ****
- X c_ptr = &c_list[m_ptr->mptr];
- X p_ptr = &py.misc;
- X! acc_tmp = c_ptr->mexp*((c_ptr->level+0.1)/p_ptr->lev);
- X i = (int)(acc_tmp);
- X acc_exp += (acc_tmp - i);
- X--- 745,749 ----
- X c_ptr = &c_list[m_ptr->mptr];
- X p_ptr = &py.misc;
- X! acc_tmp = c_ptr->mexp * ((float) c_ptr->level / (float) p_ptr->lev);
- X i = (int)(acc_tmp);
- X acc_exp += (acc_tmp - i);
- X***************
- X*** 1126,1130 ****
- X if (tmp_str != 0)
- X tmp_str[0] = '\0';
- X! (void) strcat(t_ptr->name, " (Empty)");
- X known2(t_ptr->name);
- X t_ptr->cost = 0;
- X--- 1132,1136 ----
- X if (tmp_str != 0)
- X tmp_str[0] = '\0';
- X! (void) strcat(t_ptr->name, "(Empty)");
- X known2(t_ptr->name);
- X t_ptr->cost = 0;
- X***************
- X*** 1150,1154 ****
- X else
- X msg_print("I do not see anything you can open there.");
- X! }
- X }
- X
- X--- 1156,1160 ----
- X else
- X msg_print("I do not see anything you can open there.");
- X! }
- X }
- X
- X***************
- X*** 1380,1388 ****
- X tot = t1 + t2 + t3 + t4;
- X if (py.flags.blind > 0)
- X! tot = tot / 5.0;
- X else if (no_light())
- X! tot = tot / 2.0;
- X if (py.flags.confused > 0)
- X! tot = tot / 3.0;
- X i = t_list[c_ptr->tptr].tval;
- X t5 = t_list[c_ptr->tptr].level;
- X--- 1386,1394 ----
- X tot = t1 + t2 + t3 + t4;
- X if (py.flags.blind > 0)
- X! tot = tot / 5;
- X else if (no_light())
- X! tot = tot / 2;
- X if (py.flags.confused > 0)
- X! tot = tot / 3;
- X i = t_list[c_ptr->tptr].tval;
- X t5 = t_list[c_ptr->tptr].level;
- X***************
- X*** 1424,1430 ****
- X tmp_str[0] = '\0';
- X if (0x00000001 & i_ptr->flags)
- X! (void) strcat(i_ptr->name, " (Locked)");
- X else
- X! (void) strcat(i_ptr->name, " (Disarmed)");
- X msg_print("You have disarmed the chest.");
- X known2(i_ptr->name);
- X--- 1430,1436 ----
- X tmp_str[0] = '\0';
- X if (0x00000001 & i_ptr->flags)
- X! (void) strcat(i_ptr->name, "(Locked)");
- X else
- X! (void) strcat(i_ptr->name, "(Disarmed)");
- X msg_print("You have disarmed the chest.");
- X known2(i_ptr->name);
- X***************
- X*** 1888,1895 ****
- X i_ptr->tval = 1;
- X p_ptr = &py;
- X! p_ptr->misc.bth = ((p_ptr->stats.cstr+
- X! p_ptr->misc.wt)/6.0);
- X p_ptr->misc.ptohit = 0;
- X! p_ptr->misc.ptodam = (p_ptr->misc.wt/75.0) + 1;
- X if (py_attack(y, x))
- X {
- X--- 1894,1900 ----
- X i_ptr->tval = 1;
- X p_ptr = &py;
- X! p_ptr->misc.bth = ((p_ptr->stats.cstr + p_ptr->misc.wt) / 6);
- X p_ptr->misc.ptohit = 0;
- X! p_ptr->misc.ptodam = (p_ptr->misc.wt / 75) + 1;
- X if (py_attack(y, x))
- X {
- X*** oldmoria/potions.c Sun Oct 30 01:17:27 1988
- X--- newmoria/potions.c Sun Oct 30 01:07:42 1988
- X***************
- X*** 253,257 ****
- X msg_print("You feel your memories fade...");
- X /* avoid randint(0) call */
- X! l = (py.misc.exp/5.0);
- X if (l == 0)
- X lose_exp(1);
- X--- 253,257 ----
- X msg_print("You feel your memories fade...");
- X /* avoid randint(0) call */
- X! l = (py.misc.exp / 5);
- X if (l == 0)
- X lose_exp(1);
- X***************
- X*** 360,364 ****
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += (int)(i_ptr->level/m_ptr->lev + 0.5);
- X prt_experience();
- X }
- X--- 360,364 ----
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += (((float) i_ptr->level / (float) m_ptr->lev) + 0.5);
- X prt_experience();
- X }
- X*** oldmoria/save.c Sun Oct 30 01:17:39 1988
- X--- newmoria/save.c Sun Oct 30 01:07:43 1988
- X***************
- X*** 311,315 ****
- X else if (flag)
- X {
- X! (void) sprintf(temp,"Character saved. [Moria Version %lf]",CUR_VERSION);
- X prt(temp, 0, 0);
- X if (exit)
- X--- 311,315 ----
- X else if (flag)
- X {
- X! (void) sprintf(temp,"Character saved. [Moria Version %.2lf]\n",CUR_VERSION);
- X prt(temp, 0, 0);
- X if (exit)
- X***************
- X*** 471,475 ****
- X controlz();
- X
- X! if (buf.st_atime >= buf2.st_atime + 5)
- X {
- X (void) sprintf(temp, "File %s has been touched, sorry.", fnam);
- X--- 471,475 ----
- X controlz();
- X
- X! if (buf.st_mtime >= buf2.st_mtime + 5)
- X {
- X (void) sprintf(temp, "File %s has been touched, sorry.", fnam);
- X***************
- X*** 495,499 ****
- X else
- X {
- X! age = (long)buf2.st_atime - (long)buf.st_atime; /* age in seconds */
- X age = (age / 86400) + 1; /* age in days */
- X for (i = 0; i < age; i++)
- X--- 495,499 ----
- X else
- X {
- X! age = (long)buf2.st_atime - (long)buf.st_mtime; /* age in seconds */
- X age = (age / 86400) + 1; /* age in days */
- X for (i = 0; i < age; i++)
- X***************
- X*** 508,511 ****
- X--- 508,517 ----
- X }
- X
- X+ /* prevent ^c quit from entering score into scoreboard,
- X+ and prevent signal from creating panic save until this point,
- X+ old save file has just been deleted */
- X+ character_generated = 1;
- X+
- X+ #ifndef SCORE_PANIC_SAVES
- X if (panic_save == 1)
- X {
- X***************
- X*** 515,518 ****
- X--- 521,525 ----
- X msg_print (" ");
- X }
- X+ #endif
- X
- X /* reidentify objects */
- X***************
- X*** 531,535 ****
- X death = 1;
- X }
- X-
- X- return(FALSE);
- X }
- X--- 538,540 ----
- X*** oldmoria/scrolls.c Sun Oct 30 01:18:02 1988
- X--- newmoria/scrolls.c Sun Oct 30 01:07:44 1988
- X***************
- X*** 480,491 ****
- X if (!first)
- X {
- X- desc_remain(item_val);
- X- inven_destroy(item_val);
- X if (i_ptr->flags != 0)
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += (i_ptr->level/m_ptr->lev);
- X prt_experience();
- X }
- X }
- X }
- X--- 480,492 ----
- X if (!first)
- X {
- X if (i_ptr->flags != 0)
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += (((float) i_ptr->level / (float) m_ptr->lev)
- X! + 0.5);
- X prt_experience();
- X }
- X+ desc_remain(item_val);
- X+ inven_destroy(item_val);
- X }
- X }
- X*** oldmoria/signals.c Sun Oct 30 01:17:02 1988
- X--- newmoria/signals.c Sun Oct 30 01:07:44 1988
- X***************
- X*** 14,18 ****
- X
- X extern int total_winner;
- X- extern int moria_flag;
- X extern int search_flag;
- X
- X--- 14,17 ----
- X***************
- X*** 74,78 ****
- X error_sig = sig;
- X error_code = 0;
- X! if (!character_saved)
- X {
- X prt("OH NO!!!!!!!!!! Attempting panic save.", 23, 0);
- X--- 73,77 ----
- X error_sig = sig;
- X error_code = 0;
- X! if (!character_saved && character_generated)
- X {
- X prt("OH NO!!!!!!!!!! Attempting panic save.", 23, 0);
- X***************
- X*** 110,114 ****
- X error_sig = sig;
- X error_code = code;
- X! if (!character_saved)
- X {
- X prt("OH NO!!!!!!!!!! Attempting panic save.", 23, 0);
- X--- 109,113 ----
- X error_sig = sig;
- X error_code = code;
- X! if (!character_saved && character_generated)
- X {
- X prt("OH NO!!!!!!!!!! Attempting panic save.", 23, 0);
- X***************
- X*** 147,151 ****
- X error_sig = sig;
- X error_code = 0;
- X! if (!character_saved)
- X save_char(FALSE, TRUE);
- X exit_game();
- X--- 146,150 ----
- X error_sig = sig;
- X error_code = 0;
- X! if (!character_saved && character_generated)
- X save_char(FALSE, TRUE);
- X exit_game();
- X***************
- X*** 163,167 ****
- X error_sig = sig;
- X error_code = code;
- X! if (!character_saved)
- X save_char(FALSE, TRUE);
- X exit_game();
- X--- 162,166 ----
- X error_sig = sig;
- X error_code = code;
- X! if (!character_saved && character_generated)
- X save_char(FALSE, TRUE);
- X exit_game();
- X***************
- X*** 186,189 ****
- X--- 185,190 ----
- X return;
- X }
- X+ /* flush input just in case */
- X+ flush ();
- X if (get_com("Do you really want to quit?", &command))
- X switch(command)
- X***************
- X*** 204,209 ****
- X {
- X put_buffer(" -more-", MSG_LINE, 0);
- X- put_qio();
- X }
- X }
- X #else
- X--- 205,210 ----
- X {
- X put_buffer(" -more-", MSG_LINE, 0);
- X }
- X+ put_qio();
- X }
- X #else
- X***************
- X*** 223,226 ****
- X--- 224,229 ----
- X return;
- X }
- X+ /* flush input just in case */
- X+ flush();
- X if (get_com("Do you really want to quit?", &command))
- X switch(command)
- X***************
- X*** 241,246 ****
- X {
- X put_buffer(" -more-", MSG_LINE, 0);
- X- put_qio();
- X }
- X }
- X #endif
- X--- 244,249 ----
- X {
- X put_buffer(" -more-", MSG_LINE, 0);
- X }
- X+ put_qio();
- X }
- X #endif
- X*** oldmoria/spells.c Sun Oct 30 01:18:23 1988
- X--- newmoria/spells.c Sun Oct 30 01:07:45 1988
- X***************
- X*** 499,502 ****
- X--- 499,503 ----
- X register int destroy;
- X register cave_type *c_ptr;
- X+ char *tmp_str;
- X
- X destroy = FALSE;
- X***************
- X*** 516,521 ****
- X }
- X else if (t_list[c_ptr->tptr].tval == 2)
- X! /* destroy traps on chest and unlock */
- X! t_list[c_ptr->tptr].flags &= 0xFF000000;
- X }
- X }
- X--- 517,530 ----
- X }
- X else if (t_list[c_ptr->tptr].tval == 2)
- X! {
- X! /* destroy traps on chest and unlock */
- X! t_list[c_ptr->tptr].flags &= 0xFF000000;
- X! tmp_str = index(t_list[c_ptr->tptr].name, '(');
- X! if (tmp_str != 0)
- X! tmp_str[0] = '\0';
- X! (void) strcat (t_list[c_ptr->tptr].name, "(Disarmed)");
- X! msg_print ("You have disarmed the chest.");
- X! known2 (t_list[c_ptr->tptr].name);
- X! }
- X }
- X }
- X***************
- X*** 672,676 ****
- X if (i >= 0)
- X t_ptr->name[i] = '\0';
- X! (void) strcat(t_ptr->name, " (Unlocked)");
- X known2(t_ptr->name);
- X }
- X--- 681,685 ----
- X if (i >= 0)
- X t_ptr->name[i] = '\0';
- X! (void) strcat(t_ptr->name, "(Unlocked)");
- X known2(t_ptr->name);
- X }
- X***************
- X*** 737,741 ****
- X int fire_bolt(typ, dir, y, x, dam, bolt_typ)
- X int typ, dir, y, x, dam;
- X! ctype bolt_typ;
- X {
- X int i, oldy, oldx, dist;
- X--- 746,750 ----
- X int fire_bolt(typ, dir, y, x, dam, bolt_typ)
- X int typ, dir, y, x, dam;
- X! char *bolt_typ;
- X {
- X int i, oldy, oldx, dist;
- X***************
- X*** 784,788 ****
- X dam = dam*2;
- X else if (weapon_type & r_ptr->spells)
- X! dam = (dam/4.0);
- X i = mon_take_hit((int)c_ptr->cptr, dam);
- X monster_name(m_name, m_ptr, r_ptr);
- X--- 793,797 ----
- X dam = dam*2;
- X else if (weapon_type & r_ptr->spells)
- X! dam = (dam / 4);
- X i = mon_take_hit((int)c_ptr->cptr, dam);
- X monster_name(m_name, m_ptr, r_ptr);
- X***************
- X*** 830,834 ****
- X int fire_ball(typ, dir, y, x, dam_hp, descrip)
- X int typ, dir, y, x, dam_hp;
- X! ctype descrip;
- X {
- X register int i, j;
- X--- 839,843 ----
- X int fire_ball(typ, dir, y, x, dam_hp, descrip)
- X int typ, dir, y, x, dam_hp;
- X! char *descrip;
- X {
- X register int i, j;
- X***************
- X*** 1009,1013 ****
- X dam = dam*2;
- X else if (weapon_type & r_ptr->spells)
- X! dam = (dam/4.0);
- X dam = (dam/(distance(i, j, y, x)+1));
- X m_ptr->hp = m_ptr->hp - dam;
- X--- 1018,1022 ----
- X dam = dam*2;
- X else if (weapon_type & r_ptr->spells)
- X! dam = (dam / 4);
- X dam = (dam/(distance(i, j, y, x)+1));
- X m_ptr->hp = m_ptr->hp - dam;
- X***************
- X*** 1528,1533 ****
- X }
- X }
- X- else
- X- flag = TRUE;
- X }
- X }
- X--- 1537,1540 ----
- X***************
- X*** 2167,2171 ****
- X c_list[m_ptr->mptr].cmove);
- X p_ptr = &py.misc;
- X! p_ptr->exp += ((r_ptr->mexp*(r_ptr->level/p_ptr->lev)) + 0.5);
- X delete_monster(i);
- X }
- X--- 2174,2179 ----
- X c_list[m_ptr->mptr].cmove);
- X p_ptr = &py.misc;
- X! p_ptr->exp += ((r_ptr->mexp * ((float) r_ptr->level / (float) p_ptr->lev))
- X! + 0.5);
- X delete_monster(i);
- X }
- X***************
- X*** 2444,2448 ****
- X if (f_ptr->poisoned > 0)
- X {
- X! f_ptr->poisoned = f_ptr->poisoned / 2.0;
- X if (f_ptr->poisoned < 1) f_ptr->poisoned = 1;
- X slow = TRUE;
- X--- 2452,2456 ----
- X if (f_ptr->poisoned > 0)
- X {
- X! f_ptr->poisoned = f_ptr->poisoned / 2;
- X if (f_ptr->poisoned < 1) f_ptr->poisoned = 1;
- X slow = TRUE;
- X*** oldmoria/staffs.c Sun Oct 30 01:18:17 1988
- X--- newmoria/staffs.c Sun Oct 30 01:07:46 1988
- X***************
- X*** 29,33 ****
- X chance = m_ptr->save + m_ptr->lev + int_adj() - i_ptr->level - 5;
- X if (py.flags.confused > 0)
- X! chance = chance / 2.0;
- X if (chance <= 0) chance = 1;
- X if (randint(chance) < USE_DEVICE)
- X--- 29,33 ----
- X chance = m_ptr->save + m_ptr->lev + int_adj() - i_ptr->level - 5;
- X if (py.flags.confused > 0)
- X! chance = chance / 2;
- X if (chance <= 0) chance = 1;
- X if (randint(chance) < USE_DEVICE)
- X***************
- X*** 144,148 ****
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += ((i_ptr->level/m_ptr->lev) + 0.5);
- X prt_experience();
- X }
- X--- 144,148 ----
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += (((float)i_ptr->level / (float)m_ptr->lev) + 0.5);
- X prt_experience();
- X }
- X*** oldmoria/store1.c Sun Oct 30 01:17:11 1988
- X--- newmoria/store1.c Sun Oct 30 01:07:46 1988
- X***************
- X*** 122,126 ****
- X else if (index(i_ptr->name, '^') == 0)
- X {
- X! value = i_ptr->cost + (i_ptr->cost/20.0)*i_ptr->p1;
- X }
- X }
- X--- 122,126 ----
- X else if (index(i_ptr->name, '^') == 0)
- X {
- X! value = i_ptr->cost + (i_ptr->cost / 20) * i_ptr->p1;
- X }
- X }
- X*** oldmoria/store2.c Sun Oct 30 01:17:56 1988
- X--- newmoria/store2.c Sun Oct 30 01:07:47 1988
- X***************
- X*** 960,964 ****
- X /* make sure player sees the message */
- X msg_print(" ");
- X! if ((store_buy[store_num])(inventory[INVEN_MAX].tval))
- X if (store_check_num(store_num))
- X switch(sell_haggle(store_num, &price, inventory[INVEN_MAX]))
- X--- 960,964 ----
- X /* make sure player sees the message */
- X msg_print(" ");
- X! if ((*store_buy[store_num])(inventory[INVEN_MAX].tval))
- X if (store_check_num(store_num))
- X switch(sell_haggle(store_num, &price, inventory[INVEN_MAX]))
- X*** oldmoria/treasure1.c Sun Oct 30 01:16:43 1988
- X--- newmoria/treasure1.c Sun Oct 30 01:07:56 1988
- X***************
- X*** 637,641 ****
- X {"& Light Brown Potion~| of Apple Juice" , 75, '!',0x00000000,
- X 250, 1, 282, 4, 1, 0, 0, 0, 0, "1d1" , 0},
- X! {"& Clear Potion~| of Water" , 75, '!',0x00000000,
- X 200, 0, 283, 4, 1, 0, 0, 0, 0, "1d1" , 0},
- X {"& %C Potion~| of Gain Dexterity" , 75, '!',0x02000000,
- X--- 637,641 ----
- X {"& Light Brown Potion~| of Apple Juice" , 75, '!',0x00000000,
- X 250, 1, 282, 4, 1, 0, 0, 0, 0, "1d1" , 0},
- X! {"& Crystal Clear Potion~| of Water" , 75, '!',0x00000000,
- X 200, 0, 283, 4, 1, 0, 0, 0, 0, "1d1" , 0},
- X {"& %C Potion~| of Gain Dexterity" , 75, '!',0x02000000,
- X***************
- X*** 775,793 ****
- X {"& %W Staff| of Darkness^ (%P1 charges)" , 55, '_',0x01000000,
- X 0, 0, 25, 50, 1, 0, 0, 0, 0, "1d2" , 5},
- X! {"& Book of Magic Spells [Beginners-Magik]" , 90, '?',0x0000007F,
- X 0, 25, 257, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Book of Magic Spells [Magik I]" , 90, '?',0x0000FF80,
- X 0, 100, 258, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Book of Magic Spells [Magik II]" , 90, '?',0x00FF0000,
- X 0, 400, 259, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Book of Magic Spells [The Mage's Guide to Power]", 90, '?',0x7F000000,
- X 0, 800, 261, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Holy Book of Prayers [Beginners Handbook]" , 91, '?',0x000000FF,
- X 0, 25, 258, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Holy Book of Prayers [Words of Wisdom]" , 91, '?',0x0000FF00,
- X 0, 100, 259, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Holy Book of Prayers [Chants and Blessings]" , 91, '?',0x01FF0000,
- X 0, 300, 260, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Holy Book of Prayers [Exorcism and Dispelling]", 91, '?',0x7E000000,
- X 0, 900, 261, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X {"& Small wooden chest" , 2, '&',0x0F000000,
- X--- 775,793 ----
- X {"& %W Staff| of Darkness^ (%P1 charges)" , 55, '_',0x01000000,
- X 0, 0, 25, 50, 1, 0, 0, 0, 0, "1d2" , 5},
- X! {"& Book~ of Magic Spells [Beginners-Magik]" , 90, '?',0x0000007F,
- X 0, 25, 257, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Book~ of Magic Spells [Magik I]" , 90, '?',0x0000FF80,
- X 0, 100, 258, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Book~ of Magic Spells [Magik II]" , 90, '?',0x00FF0000,
- X 0, 400, 259, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Book~ of Magic Spells [The Mage's Guide to Power]", 90, '?',0x7F000000,
- X 0, 800, 261, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Holy Book~ of Prayers [Beginners Handbook]" , 91, '?',0x000000FF,
- X 0, 25, 258, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Holy Book~ of Prayers [Words of Wisdom]" , 91, '?',0x0000FF00,
- X 0, 100, 259, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Holy Book~ of Prayers [Chants and Blessings]" , 91, '?',0x01FF0000,
- X 0, 300, 260, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X! {"& Holy Book~ of Prayers [Exorcism and Dispelling]", 91, '?',0x7E000000,
- X 0, 900, 261, 30, 1,-100, 0, 0, 0, "1d1" , 40},
- X {"& Small wooden chest" , 2, '&',0x0F000000,
- X*** oldmoria/treasure2.c Sun Oct 30 01:17:50 1988
- X--- newmoria/treasure2.c Sun Oct 30 01:07:58 1988
- X***************
- X*** 98,104 ****
- X {"& Strip~ of Beef Jerky" , 80, ',',0x00000000,
- X 1750, 2, 310, 2, 5, 0, 0, 0, 0, "0d0" , 0}, /* 3*/
- X! {"& Pint of Fine Ale" , 80, ',',0x00000000,
- X 500, 1, 311, 10, 3, 0, 0, 0, 0, "0d0" , 0}, /* 4*/
- X! {"& Pint of Fine Wine" , 80, ',',0x00000000,
- X 400, 2, 312, 10, 1, 0, 0, 0, 0, "0d0" , 0}, /* 5*/
- X {"& Dagger (Misericorde) (%P2,%P3)" , 23, '|',0x00000000,
- X--- 98,104 ----
- X {"& Strip~ of Beef Jerky" , 80, ',',0x00000000,
- X 1750, 2, 310, 2, 5, 0, 0, 0, 0, "0d0" , 0}, /* 3*/
- X! {"& Pint~ of Fine Ale" , 80, ',',0x00000000,
- X 500, 1, 311, 10, 3, 0, 0, 0, 0, "0d0" , 0}, /* 4*/
- X! {"& Pint~ of Fine Wine" , 80, ',',0x00000000,
- X 400, 2, 312, 10, 1, 0, 0, 0, 0, "0d0" , 0}, /* 5*/
- X {"& Dagger (Misericorde) (%P2,%P3)" , 23, '|',0x00000000,
- X***************
- X*** 224,242 ****
- X {"& Scroll~ of Recharging" , 70, '?',0x01000000,
- X 0, 200, 311, 5, 1, 0, 0, 0, 0, "0d0" , 0}, /* 66*/
- X! {"& Book of Magic Spells [Beginners-Magik]" , 90, '?',0x0000007F,
- X 0, 25, 257, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 67*/
- X! {"& Book of Magic Spells [Magik I]" , 90, '?',0x0000FF80,
- X 0, 100, 258, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 68*/
- X! {"& Book of Magic Spells [Magik II]" , 90, '?',0x00FF0000,
- X 0, 400, 259, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 69*/
- X! {"& Book of Magic Spells [The Mage's Guide to Power]", 90, '?',0x7F000000,
- X 0, 800, 261, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 70*/
- X! {"& Holy Book of Prayers [Beginners Handbook]" , 91, '?',0x000000FF,
- X 0, 25, 258, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 71*/
- X! {"& Holy Book of Prayers [Words of Wisdom]" , 91, '?',0x0000FF00,
- X 0, 100, 259, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 72*/
- X! {"& Holy Book of Prayers [Chants and Blessings]" , 91, '?',0x01FF0000,
- X 0, 300, 260, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 73*/
- X! {"& Holy Book of Prayers [Exorcism and Dispelling]", 91, '?',0x7E000000,
- X 0, 900, 261, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 74*/
- X {"& Potion~ of Restore Strength" , 75, '!',0x00000004,
- X--- 224,242 ----
- X {"& Scroll~ of Recharging" , 70, '?',0x01000000,
- X 0, 200, 311, 5, 1, 0, 0, 0, 0, "0d0" , 0}, /* 66*/
- X! {"& Book~ of Magic Spells [Beginners-Magik]" , 90, '?',0x0000007F,
- X 0, 25, 257, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 67*/
- X! {"& Book~ of Magic Spells [Magik I]" , 90, '?',0x0000FF80,
- X 0, 100, 258, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 68*/
- X! {"& Book~ of Magic Spells [Magik II]" , 90, '?',0x00FF0000,
- X 0, 400, 259, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 69*/
- X! {"& Book~ of Magic Spells [The Mage's Guide to Power]", 90, '?',0x7F000000,
- X 0, 800, 261, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 70*/
- X! {"& Holy Book~ of Prayers [Beginners Handbook]" , 91, '?',0x000000FF,
- X 0, 25, 258, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 71*/
- X! {"& Holy Book~ of Prayers [Words of Wisdom]" , 91, '?',0x0000FF00,
- X 0, 100, 259, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 72*/
- X! {"& Holy Book~ of Prayers [Chants and Blessings]" , 91, '?',0x01FF0000,
- X 0, 300, 260, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 73*/
- X! {"& Holy Book~ of Prayers [Exorcism and Dispelling]", 91, '?',0x7E000000,
- X 0, 900, 261, 30, 1,-100, 0, 0, 0, "1d1" , 0}, /* 74*/
- X {"& Potion~ of Restore Strength" , 75, '!',0x00000004,
- X***************
- X*** 426,428 ****
- X {"a down staircase" , 108, '>',0x00000000,
- X 0, 0, 1, 0, 1, 0, 0, 0, 0, "1d1" , 0};
- X-
- X--- 426,427 ----
- X*** oldmoria/types.h Sun Oct 30 01:17:08 1988
- X--- newmoria/types.h Sun Oct 30 01:07:48 1988
- X***************
- X*** 191,195 ****
- X } spl_rec;
- X
- X! typedef spl_rec spl_type[22];
- X
- X typedef struct race_type
- X--- 191,195 ----
- X } spl_rec;
- X
- X! typedef spl_rec spl_type[32];
- X
- X typedef struct race_type
- X*** oldmoria/variables.c Sun Oct 30 01:17:14 1988
- X--- newmoria/variables.c Sun Oct 30 01:07:51 1988
- X***************
- X*** 16,20 ****
- X int missile_ctr = 0; /* Counter for missiles */
- X int msg_flag; /* Set with first msg */
- X- int generate; /* Generate next level */
- X int death = FALSE; /* True if died */
- X vtype died_from; /* What killed him */
- X--- 16,19 ----
- X*** oldmoria/wands.c Sun Oct 30 01:16:56 1988
- X--- newmoria/wands.c Sun Oct 30 01:07:49 1988
- X***************
- X*** 46,50 ****
- X chance = m_ptr->save + m_ptr->lev + int_adj() - i_ptr->level;
- X if (py.flags.confused > 0)
- X! chance = chance / 2.0;
- X if (chance <= 0) chance = 1;
- X if (randint(chance) < USE_DEVICE)
- X--- 46,50 ----
- X chance = m_ptr->save + m_ptr->lev + int_adj() - i_ptr->level;
- X if (py.flags.confused > 0)
- X! chance = chance / 2;
- X if (chance <= 0) chance = 1;
- X if (randint(chance) < USE_DEVICE)
- X***************
- X*** 158,162 ****
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += ((i_ptr->level/m_ptr->lev) + 0.5);
- X prt_experience();
- X }
- X--- 158,162 ----
- X {
- X m_ptr = &py.misc;
- X! m_ptr->exp += (((float)i_ptr->level / (float)m_ptr->lev) + 0.5);
- X prt_experience();
- X }
- X*** oldmoria/wizard.c Sun Oct 30 01:18:09 1988
- X--- newmoria/wizard.c Sun Oct 30 01:07:50 1988
- X***************
- X*** 23,27 ****
- X
- X clear_screen(0, 0);
- X! (void) sprintf(tmp_str, " Moria Version %f", CUR_VERSION);
- X put_buffer(tmp_str, 0, 0);
- X put_buffer("Version 0.1 : 03/25/83", 1, 0);
- X--- 23,27 ----
- X
- X clear_screen(0, 0);
- X! (void) sprintf(tmp_str, " Moria Version %.2lf", CUR_VERSION);
- X put_buffer(tmp_str, 0, 0);
- X put_buffer("Version 0.1 : 03/25/83", 1, 0);
- X***************
- X*** 54,57 ****
- X--- 54,60 ----
- X put_buffer("Please call it 'umoria' or 'UNIX MORIA' or something", 9, 0);
- X put_buffer("similar to avoid confusion.", 10, 0);
- X+ (void) sprintf(tmp_str, "Moria Version %.2lf, patch level %d", CUR_VERSION,
- X+ PATCH_LEVEL);
- X+ put_buffer(tmp_str, 12, 0);
- X pause_line(23);
- X draw_cave();
- X
- END_OF_patches04
- if test 60251 -ne `wc -c <patches04`; then
- echo shar: \"patches04\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- echo shar: End of shell archive.
- exit 0
-